package 位运算;
import java.util.*;
/**
 * 查找数组中只出现一次的数字
 * 时间复杂度O(n)，空间复杂度O(1)，n为数组长度
 */
public class singleNumber {
    /**
     * 查找数组中只出现一次的数字
     * 
     * @param nums 输入数组
     * @return 只出现一次的数字
     */
    public int singNum(int[] nums){
        int k = nums[0]; // 初始化结果为数组的第一个元素
        for(int i = 1; i < nums.length; i++){ // 遍历数组的其余元素
            k = k ^ nums[i]; // 使用异或操作查找只出现一次的数字
        }
        return k; // 返回只出现一次的数字
    }

    /**
     * 主函数：处理输入输出
     * 输入格式：一行数字，用逗号分隔，表示输入数组
     * 例如：4,1,2,1,2 表示一个输入数组
     * 输出格式：只出现一次的数字
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] s = sc.nextLine().split(","); // 读取输入并分割
        int[] nums = new int[s.length]; // 创建输入数组
        for(int i = 0; i < s.length; i++){ // 将输入转换为整数数组
            nums[i] = Integer.parseInt(s[i]); // 将字符串转换为整数
        }
        singleNumber sn = new singleNumber(); // 创建实例
        System.out.println(sn.singNum(nums)); // 输出只出现一次的数字
        sc.close(); // 关闭输入流
    }
}
